// 模拟前端PLC服务调用测试

async function testFrontendPLCService() {
    console.log('测试前端PLC服务调用...\n');
    
    // 模拟PLC服务对象
    const plcService = {
        // 模拟读取PLC变量的方法
        async readVariables(variables) {
            console.log('🔄 模拟读取PLC变量:', variables);
            
            // 模拟通过队列服务读取
            try {
                const response = await fetch('http://localhost:3003/api/queue/task', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                    },
                    body: JSON.stringify({
                        task: {
                            type: 'plc-read',
                            variables: variables
                        }
                    })
                });
                
                if (!response.ok) {
                    throw new Error(`HTTP error! status: ${response.status}`);
                }
                
                const result = await response.json();
                console.log('✅ 通过队列服务读取PLC变量成功:', result);
                return result;
            } catch (err) {
                console.error('❌ 通过队列服务读取PLC变量失败:', err);
                throw new Error(`读取PLC变量失败: ${err.message}`);
            }
        },
        
        // 模拟写入PLC变量的方法
        async writeVariable(name, value) {
            console.log('🔄 模拟写入PLC变量:', name, '值:', value);
            
            // 模拟通过队列服务写入
            try {
                const response = await fetch('http://localhost:3003/api/queue/task', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json',
                    },
                    body: JSON.stringify({
                        task: {
                            type: 'plc-write',
                            variable: name,
                            value: value
                        }
                    })
                });
                
                if (!response.ok) {
                    throw new Error(`HTTP error! status: ${response.status}`);
                }
                
                const result = await response.json();
                console.log('✅ 通过队列服务写入PLC变量成功:', result);
                return result;
            } catch (err) {
                console.error('❌ 通过队列服务写入PLC变量失败:', err);
                throw new Error(`写入PLC变量失败: ${err.message}`);
            }
        }
    };
    
    try {
        // 测试读取PLC变量
        console.log('1. 测试读取PLC变量:');
        const readResult = await plcService.readVariables(['DB122,X0.6']);
        console.log('   读取结果:', readResult);
        
        console.log('\n-------------------\n');
        
        // 测试写入PLC变量
        console.log('2. 测试写入PLC变量:');
        const writeResult = await plcService.writeVariable('DB1,DW8', 1);
        console.log('   写入结果:', writeResult);
        
        console.log('\n✅ 前端PLC服务调用测试完成');
    } catch (error) {
        console.error('❌ 测试过程中出现错误:', error.message);
    }
}

// 执行测试
testFrontendPLCService();